package com.jsyl.lwbk.business.domain.education;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class OrganizationScheduleDetailExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public OrganizationScheduleDetailExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("ID is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("ID is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("ID =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("ID <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("ID >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("ID >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("ID <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("ID <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("ID in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("ID not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("ID between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("ID not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andCenterIdIsNull() {
            addCriterion("CENTER_ID is null");
            return (Criteria) this;
        }

        public Criteria andCenterIdIsNotNull() {
            addCriterion("CENTER_ID is not null");
            return (Criteria) this;
        }

        public Criteria andCenterIdEqualTo(Long value) {
            addCriterion("CENTER_ID =", value, "centerId");
            return (Criteria) this;
        }

        public Criteria andCenterIdNotEqualTo(Long value) {
            addCriterion("CENTER_ID <>", value, "centerId");
            return (Criteria) this;
        }

        public Criteria andCenterIdGreaterThan(Long value) {
            addCriterion("CENTER_ID >", value, "centerId");
            return (Criteria) this;
        }

        public Criteria andCenterIdGreaterThanOrEqualTo(Long value) {
            addCriterion("CENTER_ID >=", value, "centerId");
            return (Criteria) this;
        }

        public Criteria andCenterIdLessThan(Long value) {
            addCriterion("CENTER_ID <", value, "centerId");
            return (Criteria) this;
        }

        public Criteria andCenterIdLessThanOrEqualTo(Long value) {
            addCriterion("CENTER_ID <=", value, "centerId");
            return (Criteria) this;
        }

        public Criteria andCenterIdIn(List<Long> values) {
            addCriterion("CENTER_ID in", values, "centerId");
            return (Criteria) this;
        }

        public Criteria andCenterIdNotIn(List<Long> values) {
            addCriterion("CENTER_ID not in", values, "centerId");
            return (Criteria) this;
        }

        public Criteria andCenterIdBetween(Long value1, Long value2) {
            addCriterion("CENTER_ID between", value1, value2, "centerId");
            return (Criteria) this;
        }

        public Criteria andCenterIdNotBetween(Long value1, Long value2) {
            addCriterion("CENTER_ID not between", value1, value2, "centerId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdIsNull() {
            addCriterion("COURSE_TYPE_ID is null");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdIsNotNull() {
            addCriterion("COURSE_TYPE_ID is not null");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdEqualTo(Long value) {
            addCriterion("COURSE_TYPE_ID =", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdNotEqualTo(Long value) {
            addCriterion("COURSE_TYPE_ID <>", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdGreaterThan(Long value) {
            addCriterion("COURSE_TYPE_ID >", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdGreaterThanOrEqualTo(Long value) {
            addCriterion("COURSE_TYPE_ID >=", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdLessThan(Long value) {
            addCriterion("COURSE_TYPE_ID <", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdLessThanOrEqualTo(Long value) {
            addCriterion("COURSE_TYPE_ID <=", value, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdIn(List<Long> values) {
            addCriterion("COURSE_TYPE_ID in", values, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdNotIn(List<Long> values) {
            addCriterion("COURSE_TYPE_ID not in", values, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdBetween(Long value1, Long value2) {
            addCriterion("COURSE_TYPE_ID between", value1, value2, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andCourseTypeIdNotBetween(Long value1, Long value2) {
            addCriterion("COURSE_TYPE_ID not between", value1, value2, "courseTypeId");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdIsNull() {
            addCriterion("TIME_SECTION_ID is null");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdIsNotNull() {
            addCriterion("TIME_SECTION_ID is not null");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdEqualTo(Long value) {
            addCriterion("TIME_SECTION_ID =", value, "timeSectionId");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdNotEqualTo(Long value) {
            addCriterion("TIME_SECTION_ID <>", value, "timeSectionId");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdGreaterThan(Long value) {
            addCriterion("TIME_SECTION_ID >", value, "timeSectionId");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdGreaterThanOrEqualTo(Long value) {
            addCriterion("TIME_SECTION_ID >=", value, "timeSectionId");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdLessThan(Long value) {
            addCriterion("TIME_SECTION_ID <", value, "timeSectionId");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdLessThanOrEqualTo(Long value) {
            addCriterion("TIME_SECTION_ID <=", value, "timeSectionId");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdIn(List<Long> values) {
            addCriterion("TIME_SECTION_ID in", values, "timeSectionId");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdNotIn(List<Long> values) {
            addCriterion("TIME_SECTION_ID not in", values, "timeSectionId");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdBetween(Long value1, Long value2) {
            addCriterion("TIME_SECTION_ID between", value1, value2, "timeSectionId");
            return (Criteria) this;
        }

        public Criteria andTimeSectionIdNotBetween(Long value1, Long value2) {
            addCriterion("TIME_SECTION_ID not between", value1, value2, "timeSectionId");
            return (Criteria) this;
        }

        public Criteria andClassroomIdIsNull() {
            addCriterion("CLASSROOM_ID is null");
            return (Criteria) this;
        }

        public Criteria andClassroomIdIsNotNull() {
            addCriterion("CLASSROOM_ID is not null");
            return (Criteria) this;
        }

        public Criteria andClassroomIdEqualTo(Long value) {
            addCriterion("CLASSROOM_ID =", value, "classroomId");
            return (Criteria) this;
        }

        public Criteria andClassroomIdNotEqualTo(Long value) {
            addCriterion("CLASSROOM_ID <>", value, "classroomId");
            return (Criteria) this;
        }

        public Criteria andClassroomIdGreaterThan(Long value) {
            addCriterion("CLASSROOM_ID >", value, "classroomId");
            return (Criteria) this;
        }

        public Criteria andClassroomIdGreaterThanOrEqualTo(Long value) {
            addCriterion("CLASSROOM_ID >=", value, "classroomId");
            return (Criteria) this;
        }

        public Criteria andClassroomIdLessThan(Long value) {
            addCriterion("CLASSROOM_ID <", value, "classroomId");
            return (Criteria) this;
        }

        public Criteria andClassroomIdLessThanOrEqualTo(Long value) {
            addCriterion("CLASSROOM_ID <=", value, "classroomId");
            return (Criteria) this;
        }

        public Criteria andClassroomIdIn(List<Long> values) {
            addCriterion("CLASSROOM_ID in", values, "classroomId");
            return (Criteria) this;
        }

        public Criteria andClassroomIdNotIn(List<Long> values) {
            addCriterion("CLASSROOM_ID not in", values, "classroomId");
            return (Criteria) this;
        }

        public Criteria andClassroomIdBetween(Long value1, Long value2) {
            addCriterion("CLASSROOM_ID between", value1, value2, "classroomId");
            return (Criteria) this;
        }

        public Criteria andClassroomIdNotBetween(Long value1, Long value2) {
            addCriterion("CLASSROOM_ID not between", value1, value2, "classroomId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdIsNull() {
            addCriterion("TEACHER_ID is null");
            return (Criteria) this;
        }

        public Criteria andTeacherIdIsNotNull() {
            addCriterion("TEACHER_ID is not null");
            return (Criteria) this;
        }

        public Criteria andTeacherIdEqualTo(Long value) {
            addCriterion("TEACHER_ID =", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdNotEqualTo(Long value) {
            addCriterion("TEACHER_ID <>", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdGreaterThan(Long value) {
            addCriterion("TEACHER_ID >", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdGreaterThanOrEqualTo(Long value) {
            addCriterion("TEACHER_ID >=", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdLessThan(Long value) {
            addCriterion("TEACHER_ID <", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdLessThanOrEqualTo(Long value) {
            addCriterion("TEACHER_ID <=", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdIn(List<Long> values) {
            addCriterion("TEACHER_ID in", values, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdNotIn(List<Long> values) {
            addCriterion("TEACHER_ID not in", values, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdBetween(Long value1, Long value2) {
            addCriterion("TEACHER_ID between", value1, value2, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdNotBetween(Long value1, Long value2) {
            addCriterion("TEACHER_ID not between", value1, value2, "teacherId");
            return (Criteria) this;
        }

        public Criteria andAssistantIdIsNull() {
            addCriterion("ASSISTANT_ID is null");
            return (Criteria) this;
        }

        public Criteria andAssistantIdIsNotNull() {
            addCriterion("ASSISTANT_ID is not null");
            return (Criteria) this;
        }

        public Criteria andAssistantIdEqualTo(Long value) {
            addCriterion("ASSISTANT_ID =", value, "assistantId");
            return (Criteria) this;
        }

        public Criteria andAssistantIdNotEqualTo(Long value) {
            addCriterion("ASSISTANT_ID <>", value, "assistantId");
            return (Criteria) this;
        }

        public Criteria andAssistantIdGreaterThan(Long value) {
            addCriterion("ASSISTANT_ID >", value, "assistantId");
            return (Criteria) this;
        }

        public Criteria andAssistantIdGreaterThanOrEqualTo(Long value) {
            addCriterion("ASSISTANT_ID >=", value, "assistantId");
            return (Criteria) this;
        }

        public Criteria andAssistantIdLessThan(Long value) {
            addCriterion("ASSISTANT_ID <", value, "assistantId");
            return (Criteria) this;
        }

        public Criteria andAssistantIdLessThanOrEqualTo(Long value) {
            addCriterion("ASSISTANT_ID <=", value, "assistantId");
            return (Criteria) this;
        }

        public Criteria andAssistantIdIn(List<Long> values) {
            addCriterion("ASSISTANT_ID in", values, "assistantId");
            return (Criteria) this;
        }

        public Criteria andAssistantIdNotIn(List<Long> values) {
            addCriterion("ASSISTANT_ID not in", values, "assistantId");
            return (Criteria) this;
        }

        public Criteria andAssistantIdBetween(Long value1, Long value2) {
            addCriterion("ASSISTANT_ID between", value1, value2, "assistantId");
            return (Criteria) this;
        }

        public Criteria andAssistantIdNotBetween(Long value1, Long value2) {
            addCriterion("ASSISTANT_ID not between", value1, value2, "assistantId");
            return (Criteria) this;
        }

        public Criteria andDayDateIsNull() {
            addCriterion("DAY_DATE is null");
            return (Criteria) this;
        }

        public Criteria andDayDateIsNotNull() {
            addCriterion("DAY_DATE is not null");
            return (Criteria) this;
        }

        public Criteria andDayDateEqualTo(String value) {
            addCriterion("DAY_DATE =", value, "dayDate");
            return (Criteria) this;
        }

        public Criteria andDayDateNotEqualTo(String value) {
            addCriterion("DAY_DATE <>", value, "dayDate");
            return (Criteria) this;
        }

        public Criteria andDayDateGreaterThan(String value) {
            addCriterion("DAY_DATE >", value, "dayDate");
            return (Criteria) this;
        }

        public Criteria andDayDateGreaterThanOrEqualTo(String value) {
            addCriterion("DAY_DATE >=", value, "dayDate");
            return (Criteria) this;
        }

        public Criteria andDayDateLessThan(String value) {
            addCriterion("DAY_DATE <", value, "dayDate");
            return (Criteria) this;
        }

        public Criteria andDayDateLessThanOrEqualTo(String value) {
            addCriterion("DAY_DATE <=", value, "dayDate");
            return (Criteria) this;
        }

        public Criteria andDayDateLike(String value) {
            addCriterion("DAY_DATE like", value, "dayDate");
            return (Criteria) this;
        }

        public Criteria andDayDateNotLike(String value) {
            addCriterion("DAY_DATE not like", value, "dayDate");
            return (Criteria) this;
        }

        public Criteria andDayDateIn(List<String> values) {
            addCriterion("DAY_DATE in", values, "dayDate");
            return (Criteria) this;
        }

        public Criteria andDayDateNotIn(List<String> values) {
            addCriterion("DAY_DATE not in", values, "dayDate");
            return (Criteria) this;
        }

        public Criteria andDayDateBetween(String value1, String value2) {
            addCriterion("DAY_DATE between", value1, value2, "dayDate");
            return (Criteria) this;
        }

        public Criteria andDayDateNotBetween(String value1, String value2) {
            addCriterion("DAY_DATE not between", value1, value2, "dayDate");
            return (Criteria) this;
        }

        public Criteria andWeekIsNull() {
            addCriterion("WEEK is null");
            return (Criteria) this;
        }

        public Criteria andWeekIsNotNull() {
            addCriterion("WEEK is not null");
            return (Criteria) this;
        }

        public Criteria andWeekEqualTo(Byte value) {
            addCriterion("WEEK =", value, "week");
            return (Criteria) this;
        }

        public Criteria andWeekNotEqualTo(Byte value) {
            addCriterion("WEEK <>", value, "week");
            return (Criteria) this;
        }

        public Criteria andWeekGreaterThan(Byte value) {
            addCriterion("WEEK >", value, "week");
            return (Criteria) this;
        }

        public Criteria andWeekGreaterThanOrEqualTo(Byte value) {
            addCriterion("WEEK >=", value, "week");
            return (Criteria) this;
        }

        public Criteria andWeekLessThan(Byte value) {
            addCriterion("WEEK <", value, "week");
            return (Criteria) this;
        }

        public Criteria andWeekLessThanOrEqualTo(Byte value) {
            addCriterion("WEEK <=", value, "week");
            return (Criteria) this;
        }

        public Criteria andWeekIn(List<Byte> values) {
            addCriterion("WEEK in", values, "week");
            return (Criteria) this;
        }

        public Criteria andWeekNotIn(List<Byte> values) {
            addCriterion("WEEK not in", values, "week");
            return (Criteria) this;
        }

        public Criteria andWeekBetween(Byte value1, Byte value2) {
            addCriterion("WEEK between", value1, value2, "week");
            return (Criteria) this;
        }

        public Criteria andWeekNotBetween(Byte value1, Byte value2) {
            addCriterion("WEEK not between", value1, value2, "week");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("STATUS is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("STATUS is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Byte value) {
            addCriterion("STATUS =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Byte value) {
            addCriterion("STATUS <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Byte value) {
            addCriterion("STATUS >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Byte value) {
            addCriterion("STATUS >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Byte value) {
            addCriterion("STATUS <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Byte value) {
            addCriterion("STATUS <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Byte> values) {
            addCriterion("STATUS in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Byte> values) {
            addCriterion("STATUS not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Byte value1, Byte value2) {
            addCriterion("STATUS between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Byte value1, Byte value2) {
            addCriterion("STATUS not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andIsFreeIsNull() {
            addCriterion("IS_FREE is null");
            return (Criteria) this;
        }

        public Criteria andIsFreeIsNotNull() {
            addCriterion("IS_FREE is not null");
            return (Criteria) this;
        }

        public Criteria andIsFreeEqualTo(Byte value) {
            addCriterion("IS_FREE =", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeNotEqualTo(Byte value) {
            addCriterion("IS_FREE <>", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeGreaterThan(Byte value) {
            addCriterion("IS_FREE >", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeGreaterThanOrEqualTo(Byte value) {
            addCriterion("IS_FREE >=", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeLessThan(Byte value) {
            addCriterion("IS_FREE <", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeLessThanOrEqualTo(Byte value) {
            addCriterion("IS_FREE <=", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeIn(List<Byte> values) {
            addCriterion("IS_FREE in", values, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeNotIn(List<Byte> values) {
            addCriterion("IS_FREE not in", values, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeBetween(Byte value1, Byte value2) {
            addCriterion("IS_FREE between", value1, value2, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeNotBetween(Byte value1, Byte value2) {
            addCriterion("IS_FREE not between", value1, value2, "isFree");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("CREATE_TIME is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("CREATE_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("CREATE_TIME =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("CREATE_TIME <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("CREATE_TIME >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("CREATE_TIME >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("CREATE_TIME <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("CREATE_TIME <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("CREATE_TIME in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("CREATE_TIME not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("CREATE_TIME between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("CREATE_TIME not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andSectionNumIsNull() {
            addCriterion("SECTION_NUM is null");
            return (Criteria) this;
        }

        public Criteria andSectionNumIsNotNull() {
            addCriterion("SECTION_NUM is not null");
            return (Criteria) this;
        }

        public Criteria andSectionNumEqualTo(BigDecimal value) {
            addCriterion("SECTION_NUM =", value, "sectionNum");
            return (Criteria) this;
        }

        public Criteria andSectionNumNotEqualTo(BigDecimal value) {
            addCriterion("SECTION_NUM <>", value, "sectionNum");
            return (Criteria) this;
        }

        public Criteria andSectionNumGreaterThan(BigDecimal value) {
            addCriterion("SECTION_NUM >", value, "sectionNum");
            return (Criteria) this;
        }

        public Criteria andSectionNumGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("SECTION_NUM >=", value, "sectionNum");
            return (Criteria) this;
        }

        public Criteria andSectionNumLessThan(BigDecimal value) {
            addCriterion("SECTION_NUM <", value, "sectionNum");
            return (Criteria) this;
        }

        public Criteria andSectionNumLessThanOrEqualTo(BigDecimal value) {
            addCriterion("SECTION_NUM <=", value, "sectionNum");
            return (Criteria) this;
        }

        public Criteria andSectionNumIn(List<BigDecimal> values) {
            addCriterion("SECTION_NUM in", values, "sectionNum");
            return (Criteria) this;
        }

        public Criteria andSectionNumNotIn(List<BigDecimal> values) {
            addCriterion("SECTION_NUM not in", values, "sectionNum");
            return (Criteria) this;
        }

        public Criteria andSectionNumBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("SECTION_NUM between", value1, value2, "sectionNum");
            return (Criteria) this;
        }

        public Criteria andSectionNumNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("SECTION_NUM not between", value1, value2, "sectionNum");
            return (Criteria) this;
        }

        public Criteria andCapacityIsNull() {
            addCriterion("CAPACITY is null");
            return (Criteria) this;
        }

        public Criteria andCapacityIsNotNull() {
            addCriterion("CAPACITY is not null");
            return (Criteria) this;
        }

        public Criteria andCapacityEqualTo(Integer value) {
            addCriterion("CAPACITY =", value, "capacity");
            return (Criteria) this;
        }

        public Criteria andCapacityNotEqualTo(Integer value) {
            addCriterion("CAPACITY <>", value, "capacity");
            return (Criteria) this;
        }

        public Criteria andCapacityGreaterThan(Integer value) {
            addCriterion("CAPACITY >", value, "capacity");
            return (Criteria) this;
        }

        public Criteria andCapacityGreaterThanOrEqualTo(Integer value) {
            addCriterion("CAPACITY >=", value, "capacity");
            return (Criteria) this;
        }

        public Criteria andCapacityLessThan(Integer value) {
            addCriterion("CAPACITY <", value, "capacity");
            return (Criteria) this;
        }

        public Criteria andCapacityLessThanOrEqualTo(Integer value) {
            addCriterion("CAPACITY <=", value, "capacity");
            return (Criteria) this;
        }

        public Criteria andCapacityIn(List<Integer> values) {
            addCriterion("CAPACITY in", values, "capacity");
            return (Criteria) this;
        }

        public Criteria andCapacityNotIn(List<Integer> values) {
            addCriterion("CAPACITY not in", values, "capacity");
            return (Criteria) this;
        }

        public Criteria andCapacityBetween(Integer value1, Integer value2) {
            addCriterion("CAPACITY between", value1, value2, "capacity");
            return (Criteria) this;
        }

        public Criteria andCapacityNotBetween(Integer value1, Integer value2) {
            addCriterion("CAPACITY not between", value1, value2, "capacity");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNull() {
            addCriterion("start_time is null");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNotNull() {
            addCriterion("start_time is not null");
            return (Criteria) this;
        }

        public Criteria andStartTimeEqualTo(String value) {
            addCriterion("start_time =", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotEqualTo(String value) {
            addCriterion("start_time <>", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThan(String value) {
            addCriterion("start_time >", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThanOrEqualTo(String value) {
            addCriterion("start_time >=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThan(String value) {
            addCriterion("start_time <", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThanOrEqualTo(String value) {
            addCriterion("start_time <=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLike(String value) {
            addCriterion("start_time like", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotLike(String value) {
            addCriterion("start_time not like", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeIn(List<String> values) {
            addCriterion("start_time in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotIn(List<String> values) {
            addCriterion("start_time not in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeBetween(String value1, String value2) {
            addCriterion("start_time between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotBetween(String value1, String value2) {
            addCriterion("start_time not between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNull() {
            addCriterion("end_time is null");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNotNull() {
            addCriterion("end_time is not null");
            return (Criteria) this;
        }

        public Criteria andEndTimeEqualTo(String value) {
            addCriterion("end_time =", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotEqualTo(String value) {
            addCriterion("end_time <>", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThan(String value) {
            addCriterion("end_time >", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThanOrEqualTo(String value) {
            addCriterion("end_time >=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThan(String value) {
            addCriterion("end_time <", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThanOrEqualTo(String value) {
            addCriterion("end_time <=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLike(String value) {
            addCriterion("end_time like", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotLike(String value) {
            addCriterion("end_time not like", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIn(List<String> values) {
            addCriterion("end_time in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotIn(List<String> values) {
            addCriterion("end_time not in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeBetween(String value1, String value2) {
            addCriterion("end_time between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotBetween(String value1, String value2) {
            addCriterion("end_time not between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdIsNull() {
            addCriterion("SCHEDULE_TEMPLATE_ID is null");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdIsNotNull() {
            addCriterion("SCHEDULE_TEMPLATE_ID is not null");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdEqualTo(Long value) {
            addCriterion("SCHEDULE_TEMPLATE_ID =", value, "scheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdNotEqualTo(Long value) {
            addCriterion("SCHEDULE_TEMPLATE_ID <>", value, "scheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdGreaterThan(Long value) {
            addCriterion("SCHEDULE_TEMPLATE_ID >", value, "scheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdGreaterThanOrEqualTo(Long value) {
            addCriterion("SCHEDULE_TEMPLATE_ID >=", value, "scheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdLessThan(Long value) {
            addCriterion("SCHEDULE_TEMPLATE_ID <", value, "scheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdLessThanOrEqualTo(Long value) {
            addCriterion("SCHEDULE_TEMPLATE_ID <=", value, "scheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdIn(List<Long> values) {
            addCriterion("SCHEDULE_TEMPLATE_ID in", values, "scheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdNotIn(List<Long> values) {
            addCriterion("SCHEDULE_TEMPLATE_ID not in", values, "scheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdBetween(Long value1, Long value2) {
            addCriterion("SCHEDULE_TEMPLATE_ID between", value1, value2, "scheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andScheduleTemplateIdNotBetween(Long value1, Long value2) {
            addCriterion("SCHEDULE_TEMPLATE_ID not between", value1, value2, "scheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andCoursetypeIsNull() {
            addCriterion("COURSETYPE is null");
            return (Criteria) this;
        }

        public Criteria andCoursetypeIsNotNull() {
            addCriterion("COURSETYPE is not null");
            return (Criteria) this;
        }

        public Criteria andCoursetypeEqualTo(Byte value) {
            addCriterion("COURSETYPE =", value, "coursetype");
            return (Criteria) this;
        }

        public Criteria andCoursetypeNotEqualTo(Byte value) {
            addCriterion("COURSETYPE <>", value, "coursetype");
            return (Criteria) this;
        }

        public Criteria andCoursetypeGreaterThan(Byte value) {
            addCriterion("COURSETYPE >", value, "coursetype");
            return (Criteria) this;
        }

        public Criteria andCoursetypeGreaterThanOrEqualTo(Byte value) {
            addCriterion("COURSETYPE >=", value, "coursetype");
            return (Criteria) this;
        }

        public Criteria andCoursetypeLessThan(Byte value) {
            addCriterion("COURSETYPE <", value, "coursetype");
            return (Criteria) this;
        }

        public Criteria andCoursetypeLessThanOrEqualTo(Byte value) {
            addCriterion("COURSETYPE <=", value, "coursetype");
            return (Criteria) this;
        }

        public Criteria andCoursetypeIn(List<Byte> values) {
            addCriterion("COURSETYPE in", values, "coursetype");
            return (Criteria) this;
        }

        public Criteria andCoursetypeNotIn(List<Byte> values) {
            addCriterion("COURSETYPE not in", values, "coursetype");
            return (Criteria) this;
        }

        public Criteria andCoursetypeBetween(Byte value1, Byte value2) {
            addCriterion("COURSETYPE between", value1, value2, "coursetype");
            return (Criteria) this;
        }

        public Criteria andCoursetypeNotBetween(Byte value1, Byte value2) {
            addCriterion("COURSETYPE not between", value1, value2, "coursetype");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdIsNull() {
            addCriterion("STUDENT_TYPE_ID is null");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdIsNotNull() {
            addCriterion("STUDENT_TYPE_ID is not null");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdEqualTo(Long value) {
            addCriterion("STUDENT_TYPE_ID =", value, "studentTypeId");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdNotEqualTo(Long value) {
            addCriterion("STUDENT_TYPE_ID <>", value, "studentTypeId");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdGreaterThan(Long value) {
            addCriterion("STUDENT_TYPE_ID >", value, "studentTypeId");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdGreaterThanOrEqualTo(Long value) {
            addCriterion("STUDENT_TYPE_ID >=", value, "studentTypeId");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdLessThan(Long value) {
            addCriterion("STUDENT_TYPE_ID <", value, "studentTypeId");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdLessThanOrEqualTo(Long value) {
            addCriterion("STUDENT_TYPE_ID <=", value, "studentTypeId");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdIn(List<Long> values) {
            addCriterion("STUDENT_TYPE_ID in", values, "studentTypeId");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdNotIn(List<Long> values) {
            addCriterion("STUDENT_TYPE_ID not in", values, "studentTypeId");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdBetween(Long value1, Long value2) {
            addCriterion("STUDENT_TYPE_ID between", value1, value2, "studentTypeId");
            return (Criteria) this;
        }

        public Criteria andStudentTypeIdNotBetween(Long value1, Long value2) {
            addCriterion("STUDENT_TYPE_ID not between", value1, value2, "studentTypeId");
            return (Criteria) this;
        }

        public Criteria andIsUsedIsNull() {
            addCriterion("IS_USED is null");
            return (Criteria) this;
        }

        public Criteria andIsUsedIsNotNull() {
            addCriterion("IS_USED is not null");
            return (Criteria) this;
        }

        public Criteria andIsUsedEqualTo(Byte value) {
            addCriterion("IS_USED =", value, "isUsed");
            return (Criteria) this;
        }

        public Criteria andIsUsedNotEqualTo(Byte value) {
            addCriterion("IS_USED <>", value, "isUsed");
            return (Criteria) this;
        }

        public Criteria andIsUsedGreaterThan(Byte value) {
            addCriterion("IS_USED >", value, "isUsed");
            return (Criteria) this;
        }

        public Criteria andIsUsedGreaterThanOrEqualTo(Byte value) {
            addCriterion("IS_USED >=", value, "isUsed");
            return (Criteria) this;
        }

        public Criteria andIsUsedLessThan(Byte value) {
            addCriterion("IS_USED <", value, "isUsed");
            return (Criteria) this;
        }

        public Criteria andIsUsedLessThanOrEqualTo(Byte value) {
            addCriterion("IS_USED <=", value, "isUsed");
            return (Criteria) this;
        }

        public Criteria andIsUsedIn(List<Byte> values) {
            addCriterion("IS_USED in", values, "isUsed");
            return (Criteria) this;
        }

        public Criteria andIsUsedNotIn(List<Byte> values) {
            addCriterion("IS_USED not in", values, "isUsed");
            return (Criteria) this;
        }

        public Criteria andIsUsedBetween(Byte value1, Byte value2) {
            addCriterion("IS_USED between", value1, value2, "isUsed");
            return (Criteria) this;
        }

        public Criteria andIsUsedNotBetween(Byte value1, Byte value2) {
            addCriterion("IS_USED not between", value1, value2, "isUsed");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeIsNull() {
            addCriterion("template_type is null");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeIsNotNull() {
            addCriterion("template_type is not null");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeEqualTo(Byte value) {
            addCriterion("template_type =", value, "templateType");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeNotEqualTo(Byte value) {
            addCriterion("template_type <>", value, "templateType");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeGreaterThan(Byte value) {
            addCriterion("template_type >", value, "templateType");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeGreaterThanOrEqualTo(Byte value) {
            addCriterion("template_type >=", value, "templateType");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeLessThan(Byte value) {
            addCriterion("template_type <", value, "templateType");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeLessThanOrEqualTo(Byte value) {
            addCriterion("template_type <=", value, "templateType");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeIn(List<Byte> values) {
            addCriterion("template_type in", values, "templateType");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeNotIn(List<Byte> values) {
            addCriterion("template_type not in", values, "templateType");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeBetween(Byte value1, Byte value2) {
            addCriterion("template_type between", value1, value2, "templateType");
            return (Criteria) this;
        }

        public Criteria andTemplateTypeNotBetween(Byte value1, Byte value2) {
            addCriterion("template_type not between", value1, value2, "templateType");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}